文章目录📋前言🎯什么是算法?🎯前端开发工程师需要掌握的算法🧩排序算法(如快速排序、归并排序)🧩搜索算法(如二分搜索)🧩图算法(如广度优先搜索、最短路径算法)🧩扁平数据结构转Tree📝最后📋前言一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。作为一名前端开发工程师,今天就通过这个话题和文章来聊聊前端开发工程师需要掌握的算法有哪些呢。🎯什么是算法?算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
为什么很多公司执着于typescript?因为typescript支持很多JS不支持的特性,正确的使用typescript,可以使你的代码更易于维护。最主要的是可以给JS添加类型,使编辑器的提示更智能。但是,typescript是很复杂的一门语言,很多开发者并不能很好的运用typescript,甚至很多人是被迫的,他们内心是反感使用typescript的,导致代码写的乱七八糟。事实上,JS也有很多优势是typescript所不具备的,比如:JS的灵活性很高。如果我告诉你,有一种工具,完全可以像写typescript一样写JS,你会用吗?我说的这个工具就是jsdoc,我们可以叫它JS文档注释。它
在前端对接受后端数据处理后返回的接收值的时候,为了解决数据过于庞大,而对数据进行简化处理例如性别,经常会使用1,0这俩个来代替文字的男,女。以下就是前端渲染的具体实现。以下是部分代码进行如下处理代码{{scope.row.gender=="1"?"男":"女"}} 其原理是标签定义在页面加载时隐藏的一些内容,该标签中的内容可以稍后使用JavaScript呈现。slot是插槽.,此外这里每行还有编辑,删除等功能,事件处理函数中的参数,scope.$index就是该行的下标,scope.row就是该行的数据所有消息对象,有了这两个参数我们就可以实现编辑(分配,转派,完工),删除功能,所以这个 s
前端问题:如何使网页中的http地址自动升级为https地址缘应用场景解决方案原理官方地址缘我一个搞后端开发的天天捣鼓前端的事,会不会被各位同僚念叨,哈哈。项目上的需求,需要把现在的https地址转换成http的地址,然而修改了nginx配置,摘除了证书,访问的所有静态文件依然是https,捣鼓了好半天,终于搞明白了原理,反其道而行,就有了这篇文章。应用场景当我们项目过于臃肿,项目经理要求你把项目重新部署,要求有安全的https证书访问,那你之前写死的或者什么乱七八糟的http开头的地址就会有错误提示。这时候的你又不愿意一个个去修改cdn地址或者其他url指向的时候,就可以用下面的方法。解决方
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助我们经常会遇到一个场景,比如在一个列表中批量获取用户的信息。 如果我们一次性往后端发送几十条请求是非常愚蠢的事情。此时我们就要学会如何使用批量获取的逻辑。但是批量获取有一个问题就是,我需要在用户列表项的上层去获取,然后再把结果分发给下层此时的结构如下:constList=()=>{ returnitemInfoList.map((info)=>)}这样我们就可以很方便的解决我们遇到的问题啦,因为是一个接口获取的结果嘛。但是!这种写法不利于维护。因为组件的依赖过于庞大,是一个完整的对象。对于其他组件来说很难复用,大概率这个组件就只能在一
方法一:qrcodejs2插件安装依赖:npminstall--saveqrcodejs2html代码:divid="qrcode"ref="qrCodeDiv">/div>button@click="bindQRCode">点击生成二维码/button>js代码:importQRCodefrom"qrcodejs2";bindQRCode(){document.getElementById("qrcode").innerHTML="";//为了防止生成多张,生成前先清空原先的;newQRCode(this.$refs.qrCodeDiv,{text:"我是一个二维码",//二维码的内容wid
1、keep-alive正常keep-alive的使用便可以做项目的缓存,但是我们的项目很不正常项目是属于动态缓存,动态缓存有一个弊端举个栗子:a组件为设置了需要缓存的页面;b组件为设置了需要缓存的页面;c组件为设置了不需要缓存的页面。假如:从a组件跳转到b组件,相当于缓存页面跳转到缓存页面,两个页面都会进行缓存假如:从a组件跳转到c组件,相当于缓存页面跳转到无缓存页面,此时会把a组件的缓存给清除掉,即a组件无缓存,c组件也无缓存假如:从a组件跳转到b组件,两个页面都会产生缓存,再从b页面跳转到c页面,此时会清除a组件和b组件的缓存,相当于三个页面都没有缓存内容,再次进入需要重新创建结论:缓存
前端需要接收后端的流式返回数据,并实时渲染。普通的xhr请求都是等http协议数据包一次性返回之后才渲染,类似于ChatGPT的Http接口内容类型为text/event-stream。这种内容类型需要与浏览器建立持久连接并持续监听服务器返回的数据。npm方式安装类库npminstall@microsoft/fetch-event-source使用letcontroller=newAbortController()consteventSource=fetchEventSource(fetchUrl,{method:'POST',headers:{'Content-Type':'applicat
jsencrypt和encryptlong都是rsa加密,加密的对象一定要是字符串。简单数据用前者,如果加密的是对象并且数据还挺多的,比如含有token用后者。生成密钥:RSA会产生两个密钥,其中公钥公开用于加密,私钥不公开用于解密。点击生成公钥密钥NPM安装:jsencryptNPM地址encryptlongNPM地址npminstalljsencrypt--savenpmiencryptlong--savenpminstall--savejs-base64//base64解密为了解决中文乱码代码文件rsa.ts:针对前端加密解密,公钥秘钥都存储前端不安全,一般也可采用两对公钥秘钥前后端分别